/***********************************************************************
 * Module:  Agent.java
 * Author:  a.kanwar
 * Purpose: Defines the Class Agent
 ***********************************************************************/

import java.util.*;


public class Agent extends Utilisateur {
  
    /********************************************************
     * attribute
     *******************************************************/
    
    private Agence agence;
    private Utilisateur utilisateur;

    
    /**********************************************************
     * Constructor
     ***********************************************************/
  
    public Agent(Agence agence, Utilisateur utilisateur, int idUtil, String nom, String prenom, String dateDeNaissance, String adresse, String ville, int codePostal, String login, String mdp) {
        super(idUtil, nom, prenom, dateDeNaissance, adresse, ville, codePostal, login, mdp);
        this.agence = agence;
        this.utilisateur = utilisateur;
    }

    public Agent(String libelle, Agence agence, Utilisateur utilisateur, String nom, String prenom, String dateDeNaissance, String adresse, String ville, int codePostal, String login, String mdp) {
        super(nom, prenom, dateDeNaissance, adresse, ville, codePostal, login, mdp);
        this.agence = agence;
        this.utilisateur = utilisateur;
    }

    @Override
    public String toString() {
        return "Agent{" + "agence=" + agence + ", utilisateur=" + utilisateur + '}';
    }

    
    
    
   
   
    
    
    
    
    /********************************************
     * generate code by power AMC
    *********************************************/
    
   /** @pdGenerated default parent getter */
   public Agence getAgence() {
      return agence;
   }
   
   /** @pdGenerated default parent setter
     * @param newAgence */
   public void setAgence(Agence newAgence) {
      if (this.agence == null || !this.agence.equals(newAgence))
      {
         if (this.agence != null)
         {
            Agence oldAgence = this.agence;
            this.agence = null;
            oldAgence.removeAgent(this);
         }
         if (newAgence != null)
         {
            this.agence = newAgence;
            this.agence.addAgent(this);
         }
      }
   }
   /** @pdGenerated default parent getter */
   public Utilisateur getUtilisateur() {
      return utilisateur;
   }
   
   

}